printf("y=%#8o\n",y) 中的#是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:57:53
int y=2456;
printf("y=%#8o\n",y);
输出:**0x5ba0 (*代表空格)
为什么呢???

我也纳闷这个问题,但我在vc上输出的是***04360
\8o 输出的值就是****4360
多了个#号就多了个0.。。表示不明觉厉
-----------------------------------------------------------------------
#的含义在printf的源码处的注释里找到了:对于八进制, 表示前面添加一个0;对于十六进制,表示前面添加 0x所以,%#x等价于 0x%x%#o等价于 0%o
(刚从网上看到的,我想我懂了)